// 管理用户数据相关
import { defineStore } from 'pinia';
import { loginAPI } from '@/apis/user';
import { useCartStore } from '@/stores/cartStore';
import { mergeCartAPI } from '@/apis/cart';

export const useUserStore = defineStore('user', {
  // 定义管理用户数据的state，
  // 定义获取接口数据的action函数
  // 以对象的格式把state和action return
  state: () => {
    return {
      userInfo: {},
    };
  },
  actions: {
    async getUserAPI({ account, password }) {
      const cartStore = useCartStore();
      const res = await loginAPI({ account, password });
      this.userInfo = res.result;
      // 合并购物车
      await mergeCartAPI(
        cartStore.cartList.map((item) => {
          return {
            skuId: item.skuId,
            selected: item.selected,
            count: item.count,
          };
        })
      );
      cartStore.updateNewList();
    },
    clearUserInfo() {
      this.userInfo = {};
      // 执行刚刚清楚购物车的clearCart
      this.cartStore.clearCart();
    },
  },
  persist: true,
});
